2.1 Dart 类

runtime/vm/dart.h 声明了 Dart 类,Dart 类是 DartVM 的核心类之一,负责管理整个 VM 的生命周期和全局状态。


静态属性

VM Isolate 的指针。VM Isolate 是一个特殊的 Isolate,用于 VM 内部操作。

static Isolate* vm_isolate_;

VM 启动时间(以微秒为单位)。

static int64_t start_time_micros_;

VM 使用的线程池。

static ThreadPool* thread_pool_;

用于生成 pprof 性能分析工具使用的符号信息。

static DebugInfo* pprof_symbol_generator_;

预定义的只读句柄集合。

static ReadOnlyHandles* predefined_handles_;

VM 快照的类型。快照用于快速启动 VM。

static Snapshot::Kind vm_snapshot_kind_;

Init

初始化 DartVM。这是 VM 启动时调用的第一个方法,用于设置全局状态和初始化各个子系统。

static char* Init(const Dart_InitializeParams* params);

Cleanup

清理并关闭 DartVM。在 VM 关闭时调用,用于释放资源和执行必要的清理工作。

static char* Cleanup();

IsInitialized

检查 DartVM 是否已经初始化。

static bool IsInitialized();

SetActiveApiCall/ResetActiveApiCall

这两个方法用于跟踪活跃的 API 调用。SetActiveApiCall 在进行 API 调用时设置标志, ResetActiveApiCall 在调用结束时重置标志。

static bool SetActiveApiCall();
static void ResetActiveApiCall();

CreateIsolate

创建一个新的 Isolate (Dart 的执行单元)。

static Isolate* CreateIsolate(...);

InitializeIsolateGroup/InitializeIsolate

初始化 Isolate 组和单个 Isolate。Isolate 组是共享某些资源的 Isolate 集合。

static ErrorPtr InitializeIsolateGroup(...);
static ErrorPtr InitializeIsolate(...);

RunShutdownCallback/ShutdownIsolate

执行 Isolate 关闭回调和关闭 Isolate。

static void RunShutdownCallback();
static void ShutdownIsolate(Thread* T);

VmIsolateNameEquals

检查给定的名称是否是 VM Isolate 的名称。VM Isolate 是一个特殊的 Isolate,用于 VM 内部操作。

static bool VmIsolateNameEquals(const char* name);

UptimeMicros

获取 VM 运行时间(以微秒为单位)。

static int64_t UptimeMicros();

AllocateReadOnlyHandle/AllocateReadOnlyApiHandle

分配只读句柄。句柄用于在 C++ 和 Dart 之间安全地传递对象引用。

static uword AllocateReadOnlyHandle();
static LocalHandle* AllocateReadOnlyApiHandle();

IsReadOnlyHandle/IsReadOnlyApiHandle

检查给定的句柄是否是只读句柄。

static bool IsReadOnlyHandle(uword address);
static bool IsReadOnlyApiHandle(Dart_Handle handle);

FeaturesString

生成描述 VM 当前特性和配置的字符串。

static char* FeaturesString(...);

本文作者:Maeiee

本文链接:2.1 Dart 类

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!